﻿#include "unitmanager.h"
#include "ui_unitmanager.h"

UnitManager::UnitManager(QWidget *parent) :
    BaseEditorDialog(parent),
    ui(new Ui::UnitManager)
{
    ui->setupUi(this);

    table=ST_UNITS;
    listModel=new QStringListModel(this);
    ui->listView->setModel(listModel);

    model=new QSqlTableModel(this);
    ui->tableView->setModel(model);

    updateCategory();
    createMenu();
}

UnitManager::~UnitManager()
{
    delete ui;
}

void UnitManager::generateMenu()
{
    menu->addAction(QStringLiteral("撤销"),this,&UnitManager::revert);
    menu->addAction(QStringLiteral("保存"),this,&UnitManager::save);
    menu->addSeparator();
    menu->addAction(QStringLiteral("删除"),this,&UnitManager::removeItem);
}

void UnitManager::removeItem()
{
    QModelIndex index=ui->tableView->currentIndex();
    if(index.isValid())
    {
        model->removeRow(index.row());
    }
}

void UnitManager::updateCategory()
{
    if(listModel->rowCount() != 0)
        listModel->setStringList(QStringList());

    QStringList items=sp_getCategory("category",table);
    if(!items.isEmpty())
    {
        listModel->setStringList(items);
    }
}

void UnitManager::on_listView_doubleClicked(const QModelIndex &index)
{
    QString category=index.data().toString();
    if(category.isEmpty())
        return;

    model->setTable(table);
    model->setFilter(QString("category='%1'").arg(category));
    model->select();

    ui->tableView->hideColumn(0);   //id
    model->setHeaderData(1,Qt::Horizontal,QStringLiteral("类别"));
    model->setHeaderData(2,Qt::Horizontal,QStringLiteral("产品名称"));
    ui->tableView->setColumnWidth(2,240);
    model->setHeaderData(3,Qt::Horizontal,QStringLiteral("产品编号"));
    model->setHeaderData(4,Qt::Horizontal,QStringLiteral("附加说明"));
}
